[iOS] Configurationの追加時に発生するCocoaPodsのワーニングを消す方法
1 はじめに
今回、新規にConfigurationを追加したことで、CocoaPodsのinstall/update時にメッセージが表示されるようになってしまいました。 メッセージはエラーではないので、コンパイルなどには問題ないのですが、ちょっと気持ち悪いのでなんとか消そうと試行錯誤しました。
2 ワーニング発生
(1) 試験用アプリの作成
試験用のアプリケーション(ここでは名前をSampleAppとしました)を作成し、CocoaPodsを利用してライブラリを組み込みます。
target 'SampleApp' do pod 'AFNetworking', '~> 3.0' end
pod installして作成されたワークスペースで開くと下記のようになっています。
(2) Build Configuration の追加
ここで、PROJECTを選択してinfo - Configurations で1つコンフィグレーションを追加します。 (この時、Releaseのコンフィグレーションから複製して作成しました)
続いて、Edit Scheme..を開いて、作成したConfigurationを使用するようにします。
(3) pod install
ここで一旦Xcodeを閉じて、pod installで新規に作成したConfigurationにもCocoaPodsの設定を反映させます。
$ pod install [!] Unable to load a specification for the plugin `/Library/Ruby/Gems/2.0.0/gems/cocoapods-deintegrate-1.0.0.beta.1` Updating local specs repositories CocoaPods 1.0.0.beta.6 is available. To update use: `gem install cocoapods --pre` [!] This is a test version we'd love you to try. For more information see http://blog.cocoapods.org and the CHANGELOG for this version http://git.io/BaH8pQ. Analyzing dependencies Downloading dependencies Using AFNetworking (3.0.4) Generating Pods project Integrating client project Sending stats Sending stats Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed. [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `SampleApp` to `Pods/Target Support Files/Pods-SampleApp/Pods-SampleApp.sample.xcconfig` or include the `Pods/Target Support Files/Pods-SampleApp/Pods-SampleApp.sample.xcconfig` in your build configuration.
ここで最後に、「[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set.」で始まるメッセージが表示されます。
エラーでは無いので、このままでも一応動作するのですが、いつまでも、このままだとpod installする度にこのメッセージを見なければならなくなります。
そして、これが、今回、対処したいワーニング?です。
ちなみに、起動すると、Podsプロジェクトの方にも、自動的に同じ名前のConfigurationが生成されており、コンパイル・実行も問題ありませんでした。
3 対処
メッセージの意味は、CocoaPodsは、DebugとReleaseのxconfigだけを自動生成するが、その他は、自分でやってねと言うことらしい。
プロジェクトの中のPodsを開くと、中には、新く生成されたxconfigがありますが、名前的には、残念ながらDebugとReleaseの2つです。
しかし、フォルダの中を確認してみると、なんか生成はされているみたいです。
そこで、このファイルをプロジェクトに入れました。
そして、Based on Configuration Fileで、追加したファイルを使用するように設定しました。
以上の操作で、pod installでも、問題のメッセージは表示されなくなりました。
4 最後に
CocoaPodsを使用する場合、ConfigurationとCocoaPodsの関係をよく理解する必要があります。 なお、今回のワーニングは、xconfigの複製が、ちゃんと行われている事から考えると、近々対処されるのかも知れません。
5 参考資料
CocoaPodsでカスタムコンフィギュレーションを使う
CocoaPodsで複数ターゲット指定した時の設定
Cocoapods Warning - CocoaPods did not set the base configuration of your project because because your project already has a custom config set